home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-snmpv2-proto-05.txt < prev    next >
Text File  |  1993-03-03  |  73KB  |  2,124 lines

  1.  
  2.  
  3.  
  4.           Draft           Protocol Operations for SNMPv2          Dec 92
  5.  
  6.  
  7.                                Protocol Operations
  8.                                for version 2 of the
  9.                    Simple Network Management Protocol (SNMPv2)
  10.  
  11.                              Tue Dec 22 13:43:46 1992                     |
  12.  
  13.  
  14.                                  Jeffrey D. Case
  15.                                SNMP Research, Inc.
  16.                         University of Tennessee, Knoxville
  17.                                  case@cs.utk.edu
  18.  
  19.  
  20.                                  Keith McCloghrie
  21.                                 Hughes LAN Systems
  22.                                    kzm@hls.com
  23.  
  24.  
  25.                                  Marshall T. Rose
  26.                            Dover Beach Consulting, Inc.
  27.                               mrose@dbc.mtview.ca.us
  28.  
  29.  
  30.                                Steven L. Waldbusser
  31.                             Carnegie Mellon University
  32.                             waldbusser@andrew.cmu.edu
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                                Status of this Memo
  39.  
  40.           This document is an Internet Draft.  Internet Drafts are
  41.           working documents of the Internet Engineering Task Force
  42.           (IETF), its Areas, and its Working Groups.  Note that other
  43.           groups may also distribute working documents as Internet
  44.           Drafts.
  45.  
  46.           Internet Drafts are valid for a maximum of six months and may
  47.           be updated, replaced, or obsoleted by other documents at any
  48.           time.  It is inappropriate to use Internet Drafts as reference
  49.           material or to cite them other than as a "work in progress".
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.                               Expires June 22, 1993             [Page 1]
  58.  
  59.  
  60.  
  61.  
  62.  
  63.           Draft           Protocol Operations for SNMPv2          Dec 92
  64.  
  65.  
  66.           1.  Introduction
  67.  
  68.           A network management system contains: several (potentially
  69.           many) nodes, each with a processing entity, termed an agent,
  70.           which has access to management instrumentation; at least one
  71.           management station; and, a management protocol, used to convey
  72.           management information between the agents and management
  73.           stations.  Operations of the protocol are carried out under an
  74.           administrative framework which defines both authentication and
  75.           authorization policies.
  76.  
  77.           Network management stations execute management applications
  78.           which monitor and control network elements.  Network elements
  79.           are devices such as hosts, routers, terminal servers, etc.,
  80.           which are monitored and controlled through access to their
  81.           management information.
  82.  
  83.           Management information is viewed as a collection of managed
  84.           objects, residing in a virtual information store, termed the
  85.           Management Information Base (MIB).  Collections of related
  86.           objects are defined in MIB modules.  These modules are written
  87.           using a subset of OSI's Abstract Syntax Notation One (ASN.1)
  88.           [1], termed the Structure of Management Information (SMI) [2].
  89.  
  90.           The management protocol, version 2 of the Simple Network
  91.           Management Protocol, provides for the exchange of messages
  92.           which convey management information between the agents and the
  93.           management stations.  The form of these messages is a message
  94.           "wrapper" which encapsulates a Protocol Data Unit (PDU).  The
  95.           form and meaning of the "wrapper" is determined by an
  96.           administrative framework which defines both authentication and
  97.           authorization policies.
  98.  
  99.           It is the purpose of this document, Protocol Operations for
  100.           SNMPv2, to define the operations of the protocol with respect
  101.           to the sending and receiving of the PDUs.
  102.  
  103.  
  104.           1.1.  A Note on Terminology
  105.  
  106.           For the purpose of exposition, the original Internet-standard
  107.           Network Management Framework, as described in RFCs 1155, 1157,
  108.           and 1212, is termed the SNMP version 1 framework (SNMPv1).
  109.           The current framework is termed the SNMP version 2 framework
  110.           (SNMPv2).
  111.  
  112.  
  113.  
  114.  
  115.  
  116.                               Expires June 22, 1993             [Page 2]
  117.  
  118.  
  119.  
  120.  
  121.  
  122.           Draft           Protocol Operations for SNMPv2          Dec 92
  123.  
  124.  
  125.           2.  Overview
  126.  
  127.           2.1.  Roles of Protocol Entities
  128.  
  129.           A SNMPv2 entity may operate in a manager role or an agent
  130.           role.
  131.  
  132.           A SNMPv2 entity acts in an agent role when it performs SNMPv2
  133.           management operations in response to received SNMPv2 protocol
  134.           messages (other than an inform notification) or when it sends
  135.           trap notifications.
  136.  
  137.           A SNMPv2 entity acts in a manager role when it initiates
  138.           SNMPv2 management operations by the generation of SNMPv2
  139.           protocol messages or when it performs SNMPv2 management
  140.           operations in response to received trap or inform
  141.           notifications.
  142.  
  143.           A SNMPv2 entity may support either or both roles, as dictated
  144.           by its implementation and configuration.  Further, a SNMPv2
  145.           entity can also act in the role of a proxy agent, in which it
  146.           appears to be acting in an agent role, but satisfies
  147.           management requests by acting in a manager role with a remote
  148.           entity.  The use of proxy agents and the transparency
  149.           principle that defines their behavior is described in [3].
  150.  
  151.  
  152.           2.2.  Management Information
  153.  
  154.           The term, variable, refers to an instance of a non-aggregate
  155.           object type defined according to the conventions set forth in
  156.           the SMI [2] or the textual conventions based on the SMI [4].
  157.           The term, variable binding, normally refers to the pairing of
  158.           the name of a variable and its associated value.  However, if
  159.           certain kinds of exceptional conditions occur during
  160.           processing of a retrieval request, a variable binding will
  161.           pair a name and an indication of that exception.
  162.  
  163.           A variable-binding list is a simple list of variable bindings.
  164.  
  165.           The name of a variable is an OBJECT IDENTIFIER which is the
  166.           concatenation of the OBJECT IDENTIFIER of the corresponding
  167.           object-type together with an OBJECT IDENTIFIER fragment
  168.           identifying the instance.  The OBJECT IDENTIFIER of the
  169.           corresponding object-type is called the OBJECT IDENTIFIER
  170.  
  171.  
  172.  
  173.  
  174.  
  175.                               Expires June 22, 1993             [Page 3]
  176.  
  177.  
  178.  
  179.  
  180.  
  181.           Draft           Protocol Operations for SNMPv2          Dec 92
  182.  
  183.  
  184.           prefix of the variable.
  185.  
  186.  
  187.           2.3.  Access to Management Information
  188.  
  189.           Three types of access to management information are provided
  190.           by the protocol.  One type is a request-response interaction,
  191.           in which a SNMPv2 entity, acting in a manager role, sends a
  192.           request to a SNMPv2 entity, acting in an agent role, and the
  193.           latter SNMPv2 entity then responds to the request.  This type
  194.           is used to retrieve or modify management information
  195.           associated with the managed device.
  196.  
  197.           A second type is also a request-response interaction, in which
  198.           a SNMPv2 entity, acting in a manager role, sends a request to
  199.           a SNMPv2 entity, also acting in a manager role, and the latter
  200.           SNMPv2 entity then responds to the request.  This type is used
  201.           to notify a SNMPv2 entity, acting in a manager role, of
  202.           management information associated with another SNMPv2 entity,
  203.           also acting in a manager role.
  204.  
  205.           The third type of access is an unconfirmed interaction, in
  206.           which a SNMPv2 entity, acting in an agent role, sends a
  207.           unsolicited message, termed a trap, to a SNMPv2 entity, acting
  208.           in a manager role, and no response is returned.  This type is
  209.           used to notify a SNMPv2 entity, acting in a manager role, of
  210.           an exceptional situation, which has resulted in changes to
  211.           management information associated with the managed device.
  212.  
  213.  
  214.           2.4.  Retransmission of Requests
  215.  
  216.           For all types of request in this protocol, the receiver is
  217.           required under normal circumstances, to generate and transmit
  218.           a response to the originator of the request.  Whether or not a
  219.           request should be retransmitted if no corresponding response
  220.           is received in an appropriate time interval, is at the
  221.           discretion of the application originating the request.  This
  222.           will normally depend on the urgency of the request.  However,
  223.           such an application needs to act responsibly in respect to the
  224.           frequency and duration of re-transmissions.
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.                               Expires June 22, 1993             [Page 4]
  235.  
  236.  
  237.  
  238.  
  239.  
  240.           Draft           Protocol Operations for SNMPv2          Dec 92
  241.  
  242.  
  243.           2.5.  Message Sizes
  244.  
  245.           The maximum size of a SNMPv2 message is limited the minimum
  246.           of:
  247.  
  248.           (1)  the maximum message size which the destination SNMPv2
  249.                entity can accept; and,
  250.  
  251.           (2)  the maximum message size which the source SNMPv2 entity
  252.                can generate.
  253.  
  254.           The former is indicated by partyMaxMessageSize[5] of the
  255.           destination party.  The latter is imposed by implementation-
  256.           specific local constraints.
  257.  
  258.           Each transport mapping for the SNMPv2 indicates the minimum
  259.           message size which a SNMPv2 implementation must be able to
  260.           produce or consume.  Although implementations are encouraged
  261.           to support larger values whenever possible, a conformant
  262.           implementation must never generate messages larger than
  263.           allowed by the receiving SNMPv2 entity.
  264.  
  265.           One of the aims of the GetBulkRequest-PDU, specified in this
  266.           protocol, is to minimize the number of protocol exchanges
  267.           required to retrieve a large amount of management information.
  268.           As such, this PDU type allows a SNMPv2 entity acting in a
  269.           manager role to request that the response be as large as
  270.           possible given the constraints on message sizes.  These
  271.           constraints include the limits on the size of messages which
  272.           the SNMPv2 entity acting in an agent role can generate, and
  273.           the SNMPv2 entity acting in a manager role can receive.
  274.  
  275.           However, it is possible that such maximum sized messages may
  276.           be larger than the Path MTU of the path across the network
  277.           traversed by the messages.  In this situation, such messages
  278.           are subject to fragmentation.  Fragmentation is generally
  279.           considered to be harmful [6], since among other problems, it
  280.           leads to a decrease in the reliability of the transfer of the
  281.           messages.  Thus, a SNMPv2 entity which sends a
  282.           GetBulkRequest-PDU must take care to set its parameters
  283.           accordingly, so as to reduce the risk of fragmentation.  In
  284.           particular, under conditions of network stress, only small
  285.           values should be used for max-repetitions.
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.                               Expires June 22, 1993             [Page 5]
  294.  
  295.  
  296.  
  297.  
  298.  
  299.           Draft           Protocol Operations for SNMPv2          Dec 92
  300.  
  301.  
  302.           2.6.  Transport Mappings
  303.  
  304.           It is important to note that the exchange of SNMPv2 messages
  305.           requires only an unreliable datagram service, with every
  306.           message being entirely and independently contained in a single
  307.           transport datagram.  Specific transport mappings and encoding
  308.           rules are specified elsewhere [7].  However, the preferred
  309.           mapping is the use of the User Datagram Protocol [8].
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.                               Expires June 22, 1993             [Page 6]
  353.  
  354.  
  355.  
  356.  
  357.  
  358.           Draft           Protocol Operations for SNMPv2          Dec 92
  359.  
  360.  
  361.           3.  Definitions
  362.  
  363.                SNMPv2-PDU DEFINITIONS ::= BEGIN
  364.  
  365.                IMPORTS
  366.                    ObjectName, ObjectSyntax, Integer32
  367.                        FROM SNMPv2-SMI;
  368.  
  369.  
  370.                -- protocol data units
  371.  
  372.                PDUs ::=
  373.                    CHOICE {
  374.                        get-request
  375.                            GetRequest-PDU,
  376.  
  377.                        get-next-request
  378.                            GetNextRequest-PDU,
  379.  
  380.                        get-bulk-request
  381.                            GetBulkRequest-PDU,
  382.  
  383.                        response
  384.                            Response-PDU,
  385.  
  386.                        set-request
  387.                            SetRequest-PDU,
  388.  
  389.                        inform-request
  390.                            InformRequest-PDU,
  391.  
  392.                        trap
  393.                            SNMPv2-Trap-PDU
  394.                    }
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.                               Expires June 22, 1993             [Page 7]
  412.  
  413.  
  414.  
  415.  
  416.  
  417.           Draft           Protocol Operations for SNMPv2          Dec 92
  418.  
  419.  
  420.                -- PDUs
  421.  
  422.                GetRequest-PDU ::=
  423.                    [0]
  424.                        IMPLICIT PDU
  425.  
  426.                GetNextRequest-PDU ::=
  427.                    [1]
  428.                        IMPLICIT PDU
  429.  
  430.                Response-PDU ::=
  431.                    [2]
  432.                        IMPLICIT PDU
  433.  
  434.                SetRequest-PDU ::=
  435.                    [3]
  436.                        IMPLICIT PDU
  437.  
  438.                -- [4] is obsolete
  439.  
  440.                GetBulkRequest-PDU ::=
  441.                    [5]
  442.                        IMPLICIT BulkPDU
  443.  
  444.                InformRequest-PDU ::=
  445.                    [6]
  446.                        IMPLICIT PDU
  447.  
  448.                SNMPv2-Trap-PDU ::=
  449.                    [7]
  450.                        IMPLICIT PDU
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.                               Expires June 22, 1993             [Page 8]
  471.  
  472.  
  473.  
  474.  
  475.  
  476.           Draft           Protocol Operations for SNMPv2          Dec 92
  477.  
  478.  
  479.                max-bindings
  480.                    INTEGER ::= 2147483647
  481.  
  482.                PDU ::=
  483.                    SEQUENCE {
  484.                        request-id
  485.                            Integer32,
  486.  
  487.                        error-status            -- sometimes ignored
  488.                            INTEGER {
  489.                                noError(0),
  490.                                tooBig(1),
  491.                                noSuchName(2),   -- for proxy compatibility
  492.                                badValue(3),     -- for proxy compatibility
  493.                                readOnly(4),     -- for proxy compatibility
  494.                                genErr(5),
  495.                                noAccess(6),
  496.                                wrongType(7),
  497.                                wrongLength(8),
  498.                                wrongEncoding(9),
  499.                                wrongValue(10),
  500.                                noCreation(11),
  501.                                inconsistentValue(12),
  502.                                resourceUnavailable(13),
  503.                                commitFailed(14),
  504.                                undoFailed(15),
  505.                                authorizationError(16),
  506.                                notWritable(17)
  507.                            },
  508.  
  509.                        error-index            -- sometimes ignored
  510.                            INTEGER (0..max-bindings),
  511.  
  512.                        variable-bindings   -- values are sometimes ignored
  513.                            VarBindList
  514.                    }
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.                               Expires June 22, 1993             [Page 9]
  530.  
  531.  
  532.  
  533.  
  534.  
  535.           Draft           Protocol Operations for SNMPv2          Dec 92
  536.  
  537.  
  538.                BulkPDU ::=                     -- MUST be identical in
  539.                    SEQUENCE {                  -- structure to PDU
  540.                        request-id
  541.                            Integer32,
  542.  
  543.                        non-repeaters
  544.                            INTEGER (0..max-bindings),
  545.  
  546.                        max-repetitions
  547.                            INTEGER (0..max-bindings),
  548.  
  549.                        variable-bindings       -- values are ignored
  550.                            VarBindList
  551.                    }
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.                               Expires June 22, 1993            [Page 10]
  589.  
  590.  
  591.  
  592.  
  593.  
  594.           Draft           Protocol Operations for SNMPv2          Dec 92
  595.  
  596.  
  597.                -- variable binding
  598.  
  599.                VarBind ::=
  600.                    SEQUENCE {
  601.                        name
  602.                            ObjectName,
  603.  
  604.                        CHOICE {
  605.                            value
  606.                                ObjectSyntax,
  607.  
  608.                            unSpecified         -- in retrieval requests
  609.                                    NULL,
  610.  
  611.                                                -- exceptions in responses
  612.                            noSuchObject[0]
  613.                                    IMPLICIT NULL,
  614.  
  615.                            noSuchInstance[1]
  616.                                    IMPLICIT NULL,
  617.  
  618.                            endOfMibView[2]
  619.                                    IMPLICIT NULL
  620.                        }
  621.                    }
  622.  
  623.  
  624.                -- variable-binding list
  625.  
  626.                VarBindList ::=
  627.                    SEQUENCE (SIZE (0..max-bindings)) OF
  628.                        VarBind
  629.  
  630.  
  631.                END
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.                               Expires June 22, 1993            [Page 11]
  648.  
  649.  
  650.  
  651.  
  652.  
  653.           Draft           Protocol Operations for SNMPv2          Dec 92
  654.  
  655.  
  656.           4.  Protocol Specification
  657.  
  658.  
  659.           4.1.  Common Constructs
  660.  
  661.           The value of the request-id field in a Response-PDU takes the
  662.           value of the request-id field in the request PDU to which it
  663.           is a response.  By use of the request-id value, a SNMPv2
  664.           application can distinguish the (potentially multiple)
  665.           outstanding requests, and thereby correlate incoming responses
  666.           with outstanding requests.  In cases where an unreliable
  667.           datagram service is used, the request-id also provides a
  668.           simple means of identifying messages duplicated by the
  669.           network.  Use of the same request-id on a retransmission of a
  670.           request allows the response to either the original
  671.           transmission or the retransmission to satisfy the request.
  672.           However, in order to calculate the round trip time for
  673.           transmission and processing of a request-response transaction,
  674.           the SNMPv2 application needs to use a different request-id
  675.           value on a retransmitted request.  The latter strategy is
  676.           recommended for use in the majority of situations.
  677.  
  678.           A non-zero value of the error-status field in a Response-PDU
  679.           is used to indicate that an exception occurred to prevent the
  680.           processing of the request.  In these cases, a non-zero value
  681.           of the Response-PDU's error-index field provides additional
  682.           information by identifying which variable binding in the list
  683.           caused the exception.  A variable binding is identified by its
  684.           index value.  The first variable binding in a variable-binding
  685.           list is index one, the second is index two, etc.
  686.  
  687.           SNMPv2 limits OBJECT IDENTIFIER values to a maximum of 128
  688.           sub-identifiers, where each sub-identifier has a maximum value
  689.           of 2**32-1.
  690.  
  691.  
  692.           4.2.  PDU Processing
  693.  
  694.           It is mandatory that all SNMPv2 entities acting in an agent
  695.           role be able to generate the following PDU types: Response-PDU
  696.           and SNMPv2-Trap-PDU; further, all such implementations must be
  697.           able to receive the following PDU types: GetRequest-PDU,
  698.           GetNextRequest-PDU, GetBulkRequest-PDU, and SetRequest-PDU.
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.                               Expires June 22, 1993            [Page 12]
  707.  
  708.  
  709.  
  710.  
  711.  
  712.           Draft           Protocol Operations for SNMPv2          Dec 92
  713.  
  714.  
  715.           It is mandatory that all SNMPv2 entities acting in a manager
  716.           role be able to generate the following PDU types: GetRequest-
  717.           PDU, GetNextRequest-PDU, GetBulkRequest-PDU, SetRequest-PDU,
  718.           InformRequest-PDU, and Response-PDU; further, all such
  719.           implementations must be able to receive the following PDU
  720.           types: Response-PDU, SNMPv2-Trap-PDU, InformRequest-PDU;
  721.  
  722.           In the elements of procedure below, any field of a PDU which
  723.           is not referenced by the relevant procedure is ignored by the
  724.           receiving SNMPv2 entity.  However, all components of a PDU,
  725.           including those whose values are ignored by the receiving
  726.           SNMPv2 entity, must have valid ASN.1 syntax and encoding.  For
  727.           example, some PDUs (e.g., the GetRequest-PDU) are concerned
  728.           only with the name of a variable and not its value.  In this
  729.           case, the value portion of the variable binding is ignored by
  730.           the receiving SNMPv2 entity.  The unSpecified value is defined
  731.           for use as the value portion of such bindings.
  732.  
  733.           For all generated PDUs, the message "wrapper" to encapsulate
  734.           the PDU is generated and transmitted as specified in [3].  The
  735.           size of a message is limited only by constraints on the
  736.           maximum message size, either a local limitation or the limit
  737.           associated with the message's destination party, i.e., it is
  738.           not limited by the number of variable bindings.
  739.  
  740.           On receiving a PDU, a SNMPv2 entity parses the encoded PDU.
  741.           If a parse error is detected, the PDU is discarded and the
  742.           relevant error counter is incremented.  Otherwise, the PDU is
  743.           processed according to its PDU type, in the authorization
  744.           context of the source and destination parties given by the
  745.           message "wrapper" which encapsulated the PDU.  By definition,
  746.           this authorization context indicates whether the PDU type is
  747.           authorized, and determines which variables are accessible by
  748.           this request.  For PDU types which are not authorized, either
  749.           due to policy (e.g., a SetRequest-PDU in a read-only
  750.           authorization context), or due to implementation constraints
  751.           (e.g., a Response-PDU received by a SNMPv2 entity acting in an
  752.           agent role), the PDU is discarded and the relevant error
  753.           counter is incremented.  If the discarded PDU was one of
  754.           following PDU types: GetRequest-PDU, GetNextRequest-PDU,
  755.           GetBulkRequest-PDU, SetRequest-PDU, or InformRequest-PDU, then
  756.           a Response-PDU is generated and transmitted to the originator
  757.           of the request.  This Response-PDU is formatted with the same
  758.           values in its request-id and variable-bindings fields as the
  759.           discarded PDU, with the value of its error-status field set to
  760.  
  761.  
  762.  
  763.  
  764.  
  765.                               Expires June 22, 1993            [Page 13]
  766.  
  767.  
  768.  
  769.  
  770.  
  771.           Draft           Protocol Operations for SNMPv2          Dec 92
  772.  
  773.  
  774.           `authorizationError', and the value of its error-index field
  775.           set to zero.
  776.  
  777.  
  778.           4.2.1.  The GetRequest-PDU
  779.  
  780.           A GetRequest-PDU is generated and transmitted at the request
  781.           of a SNMPv2 application.
  782.  
  783.           Upon receipt of a GetRequest-PDU, the receiving SNMPv2 entity
  784.           processes each variable binding in the variable-binding list
  785.           to produce a Response-PDU.  All fields of the Response-PDU
  786.           have the same values as the corresponding fields of the
  787.           received request except as indicated below.  Each variable
  788.           binding is processed as follows:
  789.  
  790.           (1)  If the variable binding's name does not have an OBJECT
  791.                IDENTIFIER prefix which exactly matches the OBJECT
  792.                IDENTIFIER prefix of any variable accessible by this
  793.                request, then its value field is set to `noSuchObject'.
  794.  
  795.           (2)  Otherwise, if the variable binding's name does not
  796.                exactly match the name of a variable accessible by this
  797.                request, then its value field is set to `noSuchInstance'.
  798.  
  799.           (3)  Otherwise, the variable binding's value field is set to
  800.                the value of the named variable.
  801.  
  802.           If the processing of any variable binding fails for a reason
  803.           other than listed above, then the Response-PDU is re-formatted
  804.           with the same values in its request-id and variable-bindings
  805.           fields as the received GetRequest-PDU, with the value of its
  806.           error-status field set to `genErr', and the value of its
  807.           error-index field is set to the index of the failed variable
  808.           binding.
  809.  
  810.           Otherwise, the value of the Response-PDU's error-status field
  811.           is set to `noError', and the value of its error-index field is
  812.           zero.
  813.  
  814.           The generated Response-PDU is then encapsulated into a
  815.           message.  If the size of the resultant message is less than or
  816.           equal to both a local constraint and the maximum message size
  817.           of the request's source party, it is transmitted to the
  818.           originator of the GetRequest-PDU.
  819.  
  820.  
  821.  
  822.  
  823.  
  824.                               Expires June 22, 1993            [Page 14]
  825.  
  826.  
  827.  
  828.  
  829.  
  830.           Draft           Protocol Operations for SNMPv2          Dec 92
  831.  
  832.  
  833.           Otherwise, an alternate Response-PDU is generated.  This
  834.           alternate Response-PDU is formatted with the same value in its
  835.           request-id field as the received GetRequest-PDU, with the
  836.           value of its error-status field set to `tooBig', the value of
  837.           its error-index field set to zero, and an empty variable-
  838.           bindings field.  This alternate Response-PDU is then
  839.           encapsulated into a message.  If the size of the resultant
  840.           message is less than or equal to both a local constraint and
  841.           the maximum message size of the request's source party, it is
  842.           transmitted to the originator of the GetRequest-PDU.
  843.           Otherwise, the resultant message is discarded.
  844.  
  845.  
  846.           4.2.2.  The GetNextRequest-PDU
  847.  
  848.           A GetNextRequest-PDU is generated and transmitted at the
  849.           request of a SNMPv2 application.
  850.  
  851.           Upon receipt of a GetNextRequest-PDU, the receiving SNMPv2
  852.           entity processes each variable binding in the variable-binding
  853.           list to produce a Response-PDU.  All fields of the Response-
  854.           PDU have the same values as the corresponding fields of the
  855.           received request except as indicated below.  Each variable
  856.           binding is processed as follows:
  857.  
  858.           (1)  The variable is located which is in the lexicographically
  859.                ordered list of the names of all variables which are
  860.                accessible by this request and whose name is the first
  861.                lexicographic successor of the variable binding's name in
  862.                the incoming GetNextRequest-PDU.  The corresponding
  863.                variable binding's name and value fields in the
  864.                Response-PDU are set to the name and value of the located
  865.                variable.
  866.  
  867.           (2)  If the requested variable binding's name does not
  868.                lexicographically precede the name of any variable
  869.                accessible by this request, i.e., there is no
  870.                lexicographic successor, then the corresponding variable
  871.                binding produced in the Response-PDU has its value field
  872.                set to `endOfMibView', and its name field set to the
  873.                variable binding's name in the request.
  874.  
  875.           If the processing of any variable binding fails for a reason
  876.           other than listed above, then the Response-PDU is re-formatted
  877.           with the same values in its request-id and variable-bindings
  878.  
  879.  
  880.  
  881.  
  882.  
  883.                               Expires June 22, 1993            [Page 15]
  884.  
  885.  
  886.  
  887.  
  888.  
  889.           Draft           Protocol Operations for SNMPv2          Dec 92
  890.  
  891.  
  892.           fields as the received GetNextRequest-PDU, with the value of
  893.           its error-status field set to `genErr', and the value of its
  894.           error-index field is set to the index of the failed variable
  895.           binding.
  896.  
  897.           Otherwise, the value of the Response-PDU's error-status field
  898.           is set to `noError', and the value of its error-index field is
  899.           zero.
  900.  
  901.           The generated Response-PDU is then encapsulated into a
  902.           message.  If the size of the resultant message is less than or
  903.           equal to both a local constraint and the maximum message size
  904.           of the request's source party, it is transmitted to the
  905.           originator of the GetNextRequest-PDU.
  906.  
  907.           Otherwise, an alternate Response-PDU is generated.  This
  908.           alternate Response-PDU is formatted with the same values in
  909.           its request-id field as the received GetRequest-PDU, with the
  910.           value of its error-status field set to `tooBig', the value of
  911.           its error-index field set to zero, and an empty variable-
  912.           bindings field.  This alternate Response-PDU is then
  913.           encapsulated into a message.  If the size of the resultant
  914.           message is less than or equal to both a local constraint and
  915.           the maximum message size of the request's source party, it is
  916.           transmitted to the originator of the GetNextRequest-PDU.
  917.           Otherwise, the resultant message is discarded.
  918.  
  919.  
  920.           4.2.2.1.  Example of Table Traversal
  921.  
  922.           An important use of the GetNextRequest-PDU is the traversal of
  923.           conceptual tables of information within a MIB.  The semantics
  924.           of this type of request, together with the method of
  925.           identifying individual instances of objects in the MIB,
  926.           provides access to related objects in the MIB as if they
  927.           enjoyed a tabular organization.
  928.  
  929.           In the protocol exchange sketched below, a SNMPv2 application
  930.           retrieves the media-dependent physical address and the
  931.           address-mapping type for each entry in the IP net-to-media
  932.           Address Translation Table [9] of a particular network element.
  933.           It also retrieves the value of sysUpTime [9], at which the
  934.           mappings existed.  Suppose that the agent's IP net-to-media
  935.           table has three entries:
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.                               Expires June 22, 1993            [Page 16]
  943.  
  944.  
  945.  
  946.  
  947.  
  948.           Draft           Protocol Operations for SNMPv2          Dec 92
  949.  
  950.  
  951.             Interface-Number  Network-Address  Physical-Address  Type
  952.  
  953.                    1            10.0.0.51     00:00:10:01:23:45  static
  954.                    1             9.2.3.4      00:00:10:54:32:10  dynamic
  955.                    2            10.0.0.15     00:00:10:98:76:54  dynamic
  956.  
  957.           The SNMPv2 entity acting in a manager role begins by sending a
  958.           GetNextRequest-PDU containing the indicated OBJECT IDENTIFIER
  959.           values as the requested variable names:
  960.  
  961.               GetNextRequest ( sysUpTime,
  962.                                ipNetToMediaPhysAddress,
  963.                                ipNetToMediaType )
  964.  
  965.           The SNMPv2 entity acting in an agent role responds with a
  966.           Response-PDU:
  967.  
  968.               Response (( sysUpTime.0 =  "123456" ),
  969.                         ( ipNetToMediaPhysAddress.1.9.2.3.4 =
  970.                                                    "000010543210" ),
  971.                         ( ipNetToMediaType.1.9.2.3.4 =  "dynamic" ))
  972.  
  973.           The SNMPv2 entity acting in a manager role continues with:
  974.  
  975.               GetNextRequest ( sysUpTime,
  976.                                ipNetToMediaPhysAddress.1.9.2.3.4,
  977.                                ipNetToMediaType.1.9.2.3.4 )
  978.  
  979.           The SNMPv2 entity acting in an agent role responds with:
  980.  
  981.               Response (( sysUpTime.0 =  "123461" ),
  982.                         ( ipNetToMediaPhysAddress.1.10.0.0.51 =
  983.                                                     "000010012345" ),
  984.                         ( ipNetToMediaType.1.10.0.0.51 =  "static" ))
  985.  
  986.           The SNMPv2 entity acting in a manager role continues with:
  987.  
  988.               GetNextRequest ( sysUpTime,
  989.                                ipNetToMediaPhysAddress.1.10.0.0.51,
  990.                                ipNetToMediaType.1.10.0.0.51 )
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.                               Expires June 22, 1993            [Page 17]
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.           Draft           Protocol Operations for SNMPv2          Dec 92
  1008.  
  1009.  
  1010.           The SNMPv2 entity acting in an agent role responds with:
  1011.  
  1012.               Response (( sysUpTime.0 =  "123466" ),
  1013.                         ( ipNetToMediaPhysAddress.2.10.0.0.15 =
  1014.                                                      "000010987654" ),
  1015.                         ( ipNetToMediaType.2.10.0.0.15 =  "dynamic" ))
  1016.  
  1017.           The SNMPv2 entity acting in a manager role continues with:
  1018.  
  1019.               GetNextRequest ( sysUpTime,
  1020.                                ipNetToMediaPhysAddress.2.10.0.0.15,
  1021.                                ipNetToMediaType.2.10.0.0.15 )
  1022.  
  1023.           As there are no further entries in the table, the SNMPv2
  1024.           entity acting in an agent role responds with the variables
  1025.           that are next in the lexicographical ordering of the
  1026.           accessible object names, for example:
  1027.  
  1028.               Response (( sysUpTime.0 =  "123471" ),
  1029.                         ( ipNetToMediaNetAddress.1.9.2.3.4 =
  1030.                                                          "9.2.3.4" ),
  1031.                         ( ipRoutingDiscards.0 =  "2" ))
  1032.  
  1033.           This response signals the end of the table to the SNMPv2
  1034.           entity acting in a manager role.
  1035.  
  1036.  
  1037.           4.2.3.  The GetBulkRequest-PDU
  1038.  
  1039.           A GetBulkRequest-PDU is generated and transmitted at the
  1040.           request of a SNMPv2 application.  The purpose of the
  1041.           GetBulkRequest-PDU is to request the transfer of a potentially
  1042.           large amount of data, including, but not limited to, the
  1043.           efficient and rapid retrieval of large tables.
  1044.  
  1045.           Upon receipt of a GetBulkRequest-PDU, the receiving SNMPv2
  1046.           entity processes each variable binding in the variable-binding
  1047.           list to produce a Response-PDU with its request-id field
  1048.           having the same value as in the request.  Processing begins by
  1049.           examining the values in the non-repeaters and max-repetitions
  1050.           fields.  If the value in the non-repeaters field is less than
  1051.           zero, then the value of the field is set to zero.  Similarly,
  1052.           if the value in the max-repetitions field is less than zero,
  1053.           then the value of the field is set to zero.
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.                               Expires June 22, 1993            [Page 18]
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.           Draft           Protocol Operations for SNMPv2          Dec 92
  1067.  
  1068.  
  1069.           For the GetBulkRequest-PDU type, the successful processing of
  1070.           each variable binding in the request generates zero or more
  1071.           variable bindings in the Response-PDU.  That is, the one-to-
  1072.           one mapping between the variable bindings of the GetRequest-
  1073.           PDU, GetNextRequest-PDU, and SetRequest-PDU types and the
  1074.           resultant Response-PDUs does not apply for the mapping between
  1075.           the variable bindings of a GetBulkRequest-PDU and the
  1076.           resultant Response-PDU.
  1077.  
  1078.           The values of the non-repeaters and max-repetitions fields in
  1079.           the request specify the processing requested.  One variable
  1080.           binding in the Response-PDU is requested for the first N
  1081.           variable bindings in the request and M variable bindings are
  1082.           requested for each of the R remaining variable bindings in the
  1083.           request.  Consequently, the total number of requested variable
  1084.           bindings communicated by the request is given by N + (M * R),
  1085.           where N is the minimum of: a) the value of the non-repeaters
  1086.           field in the request, and b) the number of variable bindings
  1087.           in the request; M is the value of the max-repetitions field in
  1088.           the request; and R is the maximum of: a) number of variable
  1089.           bindings in the request - N, and b)  zero.
  1090.  
  1091.           The receiving SNMPv2 entity produces a Response-PDU with up to
  1092.           the total number of requested variable bindings communicated
  1093.           by the request.  The request-id shall have the same value as
  1094.           the received GetBulkRequest-PDU.
  1095.  
  1096.           If N is greater than zero, the first through the (N)-th
  1097.           variable bindings of the Response-PDU are each produced as
  1098.           follows:
  1099.  
  1100.           (1)  The variable is located which is in the lexicographically
  1101.                ordered list of the names of all variables which are
  1102.                accessible by this request and whose name is the first
  1103.                lexicographic successor of the variable binding's name in
  1104.                the incoming GetBulkRequest-PDU.  The corresponding
  1105.                variable binding's name and value fields in the
  1106.                Response-PDU are set to the name and value of the located
  1107.                variable.
  1108.  
  1109.           (2)  If the requested variable binding's name does not
  1110.                lexicographically precede the name of any variable
  1111.                accessible by this request, i.e., there is no
  1112.                lexicographic successor, then the corresponding variable
  1113.                binding produced in the Response-PDU has its value field
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.                               Expires June 22, 1993            [Page 19]
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.           Draft           Protocol Operations for SNMPv2          Dec 92
  1126.  
  1127.  
  1128.                set to `endOfMibView', and its name field set to the
  1129.                variable binding's name in the request.
  1130.  
  1131.           If M and R are non-zero, the (N + 1)-th and subsequent
  1132.           variable bindings of the Response-PDU are each produced in a
  1133.           similar manner.  For each iteration i, such that i is greater
  1134.           than zero and less than or equal to M, and for each repeated
  1135.           variable, r, such that r is greater than zero and less than or
  1136.           equal to R, the (N + ( (i-1) * R ) + r)-th variable binding of
  1137.           the Response-PDU is produced as follows:
  1138.  
  1139.           (1)  The variable which is in the lexicographically ordered
  1140.                list of the names of all variables which are accessible
  1141.                by this request and whose name is the (i)-th
  1142.                lexicographic successor of the (N + r)-th variable
  1143.                binding's name in the incoming GetBulkRequest-PDU is
  1144.                located and the variable binding's name and value fields
  1145.                are set to the name and value of the located variable.
  1146.  
  1147.           (2)  If there is no (i)-th lexicographic successor, then the
  1148.                corresponding variable binding produced in the Response-
  1149.                PDU has its value field set to `endOfMibView', and its
  1150.                name field set to either the last lexicographic
  1151.                successor, or if there are no lexicographic successors,
  1152.                to the (N + r)-th variable binding's name in the request.
  1153.  
  1154.           While the maximum number of variable bindings in the
  1155.           Response-PDU is bounded by N + (M * R), the response may be
  1156.           generated with a lesser number of variable bindings (possibly
  1157.           zero) for either of two reasons.
  1158.  
  1159.           (1)  If the size of the message encapsulating the Response-PDU
  1160.                containing the requested number of variable bindings
  1161.                would be greater than either a local constraint or the
  1162.                maximum message size of the request's source party, then
  1163.                the response is generated with a lesser number of
  1164.                variable bindings.  This lesser number is the ordered set
  1165.                of variable bindings with some of the variable bindings
  1166.                at the end of the set removed, such that the size of the
  1167.                message encapsulating the Response-PDU is approximately
  1168.                equal to but no greater than the minimum of the local
  1169.                constraint and the maximum message size of the request's
  1170.                source party.  Note that the number of variable bindings
  1171.                removed has no relationship to the values of N, M, or R.
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.                               Expires June 22, 1993            [Page 20]
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.           Draft           Protocol Operations for SNMPv2          Dec 92
  1185.  
  1186.  
  1187.           (2)  The response may also be generated with a lesser number
  1188.                of variable bindings if for some value of iteration i,
  1189.                such that i is greater than zero and less than or equal
  1190.                to M, that all of the generated variable bindings have
  1191.                the value field set to the `endOfMibView'.  In this case,
  1192.                the variable bindings may be truncated after the (N + (i
  1193.                * R))-th variable binding.
  1194.  
  1195.           If the processing of any variable binding fails for a reason
  1196.           other than listed above, then the Response-PDU is re-formatted
  1197.           with the same values in its request-id and variable-bindings
  1198.           fields as the received GetBulkRequest-PDU, with the value of
  1199.           its error-status field set to `genErr', and the value of its
  1200.           error-index field is set to the index of the failed variable
  1201.           binding.
  1202.  
  1203.           Otherwise, the value of the Response-PDU's error-status field
  1204.           is set to `noError', and the value of its error-index field to
  1205.           zero.
  1206.  
  1207.           The generated Response-PDU (possibly with an empty variable-
  1208.           bindings field) is then encapsulated into a message.  If the
  1209.           size of the resultant message is less than or equal to both a
  1210.           local constraint and the maximum message size of the request's
  1211.           source party, it is transmitted to the originator of the
  1212.           GetBulkRequest-PDU.  Otherwise, the resultant message is
  1213.           discarded.
  1214.  
  1215.  
  1216.           4.2.3.1.  Another Example of Table Traversal
  1217.  
  1218.           This example demonstrates how the GetBulkRequest-PDU can be
  1219.           used as an alternative to the GetNextRequest-PDU.  The same
  1220.           traversal of the IP net-to-media table as shown in Section
  1221.           4.2.2.1 is achieved with fewer exchanges.
  1222.  
  1223.           The SNMPv2 entity acting in a manager role begins by sending a
  1224.           GetBulkRequest-PDU with the modest max-repetitions value of 2,
  1225.           and containing the indicated OBJECT IDENTIFIER values as the
  1226.           requested variable names:
  1227.  
  1228.               GetBulkRequest [ non-repeaters = 1, max-repetitions = 2 ]
  1229.                               ( sysUpTime,
  1230.                                 ipNetToMediaPhysAddress,
  1231.                                 ipNetToMediaType )
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.                               Expires June 22, 1993            [Page 21]
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.           Draft           Protocol Operations for SNMPv2          Dec 92
  1244.  
  1245.  
  1246.           The SNMPv2 entity acting in an agent role responds with a
  1247.           Response-PDU:
  1248.  
  1249.               Response (( sysUpTime.0 =  "123456" ),
  1250.                         ( ipNetToMediaPhysAddress.1.9.2.3.4 =
  1251.                                                    "000010543210" ),
  1252.                         ( ipNetToMediaType.1.9.2.3.4 =  "dynamic" ),
  1253.                         ( ipNetToMediaPhysAddress.1.10.0.0.51 =
  1254.                                                     "000010012345" ),
  1255.                         ( ipNetToMediaType.1.10.0.0.51 =  "static" ))
  1256.  
  1257.           The SNMPv2 entity acting in a manager role continues with:
  1258.  
  1259.               GetBulkRequest [ non-repeaters = 1, max-repetitions = 2 ]
  1260.                               ( sysUpTime,
  1261.                                 ipNetToMediaPhysAddress.1.10.0.0.51,
  1262.                                 ipNetToMediaType.1.10.0.0.51 )
  1263.  
  1264.           The SNMPv2 entity acting in an agent role responds with:
  1265.  
  1266.               Response (( sysUpTime.0 =  "123466" ),
  1267.                         ( ipNetToMediaPhysAddress.2.10.0.0.15 =
  1268.                                                    "000010987654" ),
  1269.                         ( ipNetToMediaType.2.10.0.0.15 =
  1270.                                                         "dynamic" ),
  1271.                         ( ipNetToMediaNetAddress.1.9.2.3.4 =
  1272.                                                         "9.2.3.4" ),
  1273.                         ( ipRoutingDiscards.0 =  "2" ))
  1274.  
  1275.           This response signals the end of the table to the SNMPv2
  1276.           entity acting in a manager role.
  1277.  
  1278.  
  1279.           4.2.4.  The Response-PDU
  1280.  
  1281.           The Response-PDU is generated by a SNMPv2 entity only upon
  1282.           receipt of a GetRequest-PDU, GetNextRequest-PDU,
  1283.           GetBulkRequest-PDU, SetRequest-PDU, or InformRequest-PDU, as
  1284.           described elsewhere in this document.
  1285.  
  1286.           If the error-status field of the Response-PDU is non-zero, the
  1287.           value fields of the variable bindings in the variable binding
  1288.           list are ignored.
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.                               Expires June 22, 1993            [Page 22]
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.           Draft           Protocol Operations for SNMPv2          Dec 92
  1303.  
  1304.  
  1305.           If both the error-status field and the error-index field of
  1306.           the Response-PDU are non-zero, then the value of the error-
  1307.           index field is the index of the variable binding (in the
  1308.           variable-binding list of the corresponding request) for which
  1309.           the request failed.  The first variable binding in a request's
  1310.           variable-binding list is index one, the second is index two,
  1311.           etc.
  1312.  
  1313.           A compliant SNMPv2 entity acting in a manager role must be
  1314.           able to properly receive and handle a Response-PDU with an
  1315.           error-status field equal to `noSuchName', `badValue', or
  1316.           `readOnly'.  (See Section 3.1.2 of [10].)
  1317.  
  1318.           Upon receipt of a Response-PDU, the receiving SNMPv2 entity
  1319.           presents its contents to the SNMPv2 application which
  1320.           generated the request with the same request-id value.
  1321.  
  1322.  
  1323.           4.2.5.  The SetRequest-PDU
  1324.  
  1325.           A SetRequest-PDU is generated and transmitted at the request
  1326.           of a SNMPv2 application.
  1327.  
  1328.           Upon receipt of a SetRequest-PDU, the receiving SNMPv2 entity
  1329.           determines the size of a message encapsulating a Response-PDU
  1330.           with the same values in its request-id, error-status, error-
  1331.           index and variable-bindings fields as the received
  1332.           SetRequest-PDU.  If the determined message size is greater
  1333.           than either a local constraint or the maximum message size of
  1334.           the request's source party, then an alternate Response-PDU is
  1335.           generated, transmitted to the originator of the SetRequest-
  1336.           PDU, and processing of the SetRequest-PDU terminates
  1337.           immediately thereafter.  This alternate Response-PDU is
  1338.           formatted with the same values in its request-id field as the
  1339.           received SetRequest-PDU, with the value of its error-status
  1340.           field set to `tooBig', the value of its error-index field set
  1341.           to zero, and an empty variable-bindings field.  This alternate
  1342.           Response-PDU is then encapsulated into a message.  If the size
  1343.           of the resultant message is less than or equal to both a local
  1344.           constraint and the maximum message size of the request's
  1345.           source party, it is transmitted to the originator of the
  1346.           SetRequest-PDU.  Otherwise, the resultant message is
  1347.           discarded.  Regardless, processing of the SetRequest-PDU
  1348.           terminates.
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.                               Expires June 22, 1993            [Page 23]
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.           Draft           Protocol Operations for SNMPv2          Dec 92
  1362.  
  1363.  
  1364.           Otherwise, the receiving SNMPv2 entity processes each variable
  1365.           binding in the variable-binding list to produce a Response-
  1366.           PDU.  All fields of the Response-PDU have the same values as
  1367.           the corresponding fields of the received request except as
  1368.           indicated below.
  1369.  
  1370.           The variable bindings are conceptually processed as a two
  1371.           phase operation.  In the first phase, each variable binding is
  1372.           validated; if all validations are successful, then each
  1373.           variable is altered in the second phase.  Of course,            +
  1374.           implementors are at liberty to implement either the first, or   +
  1375.           second, or both, of the these conceptual phases as multiple     +
  1376.           implementation phases.  Indeed, such multiple implementation    +
  1377.           phases may be necessary in some cases to ensure consistency.    +
  1378.  
  1379.           The following validations are performed in the first phase on
  1380.           each variable binding until they are all successful, or until
  1381.           one fails:
  1382.  
  1383.           (1)  If the variable binding's name specifies a variable which
  1384.                is not accessible by this request, then the value of the
  1385.                Response-PDU's error-status field is set to `noAccess',
  1386.                and the value of its error-index field is set to the
  1387.                index of the failed variable binding.
  1388.  
  1389.           (2)  Otherwise, if the variable binding's name specifies a
  1390.                variable which does not exist and could not ever be
  1391.                created, then the value of the Response-PDU's error-
  1392.                status field is set to `noCreation', and the value of its
  1393.                error-index field is set to the index of the failed
  1394.                variable binding.
  1395.  
  1396.           (3)  Otherwise, if the variable binding's name specifies a
  1397.                variable which exists but can not be modified no matter
  1398.                what new value is specified, then the value of the
  1399.                Response-PDU's error-status field is set to
  1400.                `notWritable', and the value of its error-index field is
  1401.                set to the index of the failed variable binding.
  1402.  
  1403.           (4)  Otherwise, if the variable binding's value field
  1404.                specifies, according to the ASN.1 language, a type which
  1405.                is inconsistent with that required for the variable, then
  1406.                the value of the Response-PDU's error-status field is set
  1407.                to `wrongType', and the value of its error-index field is
  1408.                set to the index of the failed variable binding.
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.                               Expires June 22, 1993            [Page 24]
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.           Draft           Protocol Operations for SNMPv2          Dec 92
  1421.  
  1422.  
  1423.           (5)  Otherwise, if the variable binding's value field
  1424.                specifies, according to the ASN.1 language, a length
  1425.                which is inconsistent with that required for the
  1426.                variable, then the value of the Response-PDU's error-
  1427.                status field is set to `wrongLength', and the value of
  1428.                its error-index field is set to the index of the failed
  1429.                variable binding.
  1430.  
  1431.           (6)  Otherwise, if the variable binding's value field contains
  1432.                an ASN.1 encoding which is inconsistent with that field's
  1433.                ASN.1 tag, then: the value of the Response-PDU's error-
  1434.                status field is set to `wrongEncoding', and the value of
  1435.                its error-index field is set to the index of the failed
  1436.                variable binding.
  1437.  
  1438.           (7)  Otherwise, if the variable binding's value field
  1439.                specifies a value which could under no circumstances be
  1440.                assigned to the variable, then: the value of the
  1441.                Response-PDU's error-status field is set to `wrongValue',
  1442.                and the value of its error-index field is set to the
  1443.                index of the failed variable binding.
  1444.  
  1445.           (8)  Otherwise, if the variable binding's value field
  1446.                specifies a value that could under other circumstances be
  1447.                assigned to the variable, but is presently inconsistent,
  1448.                then the value of the Response-PDU's error-status field
  1449.                is set to `inconsistentValue', and the value of its
  1450.                error-index field is set to the index of the failed
  1451.                variable binding.
  1452.  
  1453.           (9)  Otherwise, if the assignment of the value specified by
  1454.                the variable binding's value field to the specified
  1455.                variable requires the allocation of a resource which is
  1456.                presently unavailable, then: the value of the Response-
  1457.                PDU's error-status field is set to `resourceUnavailable',
  1458.                and the value of its error-index field is set to the
  1459.                index of the failed variable binding.
  1460.  
  1461.           (10) If the processing of the variable binding fails for a
  1462.                reason other than listed above, then the value of the
  1463.                Response-PDU's error-status field is set to `genErr', and
  1464.                the value of its error-index field is set to the index of
  1465.                the failed variable binding.
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.                               Expires June 22, 1993            [Page 25]
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.           Draft           Protocol Operations for SNMPv2          Dec 92
  1480.  
  1481.  
  1482.           (11) Otherwise, the validation of the variable binding
  1483.                succeeds.
  1484.  
  1485.           At the end of the first phase, if the validation of all
  1486.           variable bindings succeeded, then:
  1487.  
  1488.           The value of the Response-PDU's error-status field is set to
  1489.           `noError' and the value of its error-index field is zero.
  1490.  
  1491.           For each variable binding in the request, the named variable
  1492.           is created if necessary, and the specified value is assigned
  1493.           to it.  Each of these variable assignments occurs as if
  1494.           simultaneously with respect to all other assignments specified
  1495.           in the same request.  However, if the same variable is named
  1496.           more than once in a single request, with different associated
  1497.           values, then the actual assignment made to that variable is
  1498.           implementation-specific.
  1499.  
  1500.           If any of these assignments fail (even after all the previous
  1501.           validations), then all other assignments are undone, and the
  1502.           Response-PDU is modified to have the value of its error-status
  1503.           field set to `commitFailed', and the value of its error-index
  1504.           field set to the index of the failed variable binding.
  1505.  
  1506.           If and only if it is not possible to undo all the assignments,
  1507.           then the Response-PDU is modified to have the value of its
  1508.           error-status field set to `undoFailed', and the value of its
  1509.           error-index field is set to zero.  Note that implementations
  1510.           are strongly encouraged to take all possible measures to avoid
  1511.           use of either `commitFailed' or `undoFailed' - these two
  1512.           error-status codes are not to be taken as license to take the
  1513.           easy way out in an implementation.
  1514.  
  1515.           Finally, the generated Response-PDU is encapsulated into a
  1516.           message, and transmitted to the originator of the SetRequest-
  1517.           PDU.
  1518.  
  1519.  
  1520.           4.2.6.  The SNMPv2-Trap-PDU
  1521.  
  1522.           A SNMPv2-Trap-PDU is generated and transmitted by a SNMPv2
  1523.           entity acting in an agent role when an exceptional situation
  1524.           occurs.
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.                               Expires June 22, 1993            [Page 26]
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.           Draft           Protocol Operations for SNMPv2          Dec 92
  1539.  
  1540.  
  1541.           The destination(s) to which a SNMPv2-Trap-PDU is sent is
  1542.           determined by consulting the aclTable [5] to find all entries
  1543.           satisfying the following conditions:
  1544.  
  1545.           (1)  The value of aclSubject refers to the SNMPv2 entity.
  1546.  
  1547.           (2)  The value of aclPrivileges allows for the SNMPv2-Trap-
  1548.                PDU.
  1549.  
  1550.           (3)  The notification's administratively assigned name is
  1551.                present in aclSubject's view.  (That is, the set of
  1552.                entries in the viewTable [5] for which the instance of
  1553.                viewParty has the same value as aclSubject, define a MIB
  1554.                view which contains the notification's administratively
  1555.                assigned name.)
  1556.  
  1557.           (4)  If the OBJECTS clause is present in the invocation of the
  1558.                corresponding NOTIFICATION-TYPE macro, then the
  1559.                correspondent variables are all present in aclSubject's
  1560.                view.
  1561.  
  1562.           Then, for each entry satisfying these conditions, a SNMPv2-
  1563.           Trap-PDU is sent from aclSubject to aclTarget.  The instance
  1564.           of snmpTrapNumbers [11] corresponding to aclTarget is
  1565.           incremented, and is used as the request-id field of the
  1566.           SNMPv2-Trap-PDU.  Then, the variable-bindings field are
  1567.           constructed as:
  1568.  
  1569.           (1)  The first variable is sysUpTime.0 [9].
  1570.  
  1571.           (2)  The second variable is snmpTrapOID.0 [11], which contains
  1572.                the administratively assigned name of the notification.
  1573.  
  1574.           (3)  If the OBJECTS clause is present in the invocation of the
  1575.                corresponding NOTIFICATION-TYPE macro, then each
  1576.                corresponding variable is copied, in order, to the
  1577.                variable-bindings field.
  1578.  
  1579.           (4)  At the option of the SNMPv2 entity acting in an agent
  1580.                role, additional variables may follow in the variable-
  1581.                bindings field.
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.                               Expires June 22, 1993            [Page 27]
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.           Draft           Protocol Operations for SNMPv2          Dec 92
  1598.  
  1599.  
  1600.           4.2.7.  The InformRequest-PDU
  1601.  
  1602.           An InformRequest-PDU is generated and transmitted at the
  1603.           request an application in a SNMPv2 entity acting in a manager
  1604.           role, that wishes to notify another application (in a SNMPv2
  1605.           entity also acting in a manager role) of information in the
  1606.           MIB View of a party local to the sending application.
  1607.  
  1608.           The destination(s) to which an InformRequest-PDU is sent is
  1609.           determined by inspecting the snmpEventNotifyTable [12], or as
  1610.           specified by the requesting application.  The first two
  1611.           variable bindings in the variable binding list of an
  1612.           InformRequest-PDU are sysUpTime.0 [9] and snmpEventID.i [12]
  1613.           respectively.  If the OBJECTS clause is present in the
  1614.           invocation of the corresponding NOTIFICATION-TYPE macro, then
  1615.           each corresponding variable, as instantiated by this
  1616.           notification, is copied, in order, to the variable-bindings
  1617.           field.
  1618.  
  1619.           Upon receipt of an InformRequest-PDU, the receiving SNMPv2
  1620.           entity determines the size of a message encapsulating a
  1621.           Response-PDU with the same values in its request-id, error-
  1622.           status, error-index and variable-bindings fields as the
  1623.           received InformRequest-PDU.  If the determined message size is
  1624.           greater than either a local constraint or the maximum message
  1625.           size of the request's source party, then an alternate
  1626.           Response-PDU is generated, transmitted to the originator of
  1627.           the InformRequest-PDU, and processing of the InformRequest-PDU
  1628.           terminates immediately thereafter.  This alternate Response-
  1629.           PDU is formatted with the same values in its request-id field
  1630.           as the received InformRequest-PDU, with the value of its
  1631.           error-status field set to `tooBig', the value of its error-
  1632.           index field set to zero, and an empty variable-bindings field.
  1633.           This alternate Response-PDU is then encapsulated into a
  1634.           message.  If the size of the resultant message is less than or
  1635.           equal to both a local constraint and the maximum message size
  1636.           of the request's source party, it is transmitted to the
  1637.           originator of the InformRequest-PDU.  Otherwise, the resultant
  1638.           message is discarded.  Regardless, processing of the
  1639.           InformRequest-PDU terminates.
  1640.  
  1641.           Otherwise, the receiving SNMPv2 entity:
  1642.  
  1643.           (1)  presents its contents to the appropriate SNMPv2
  1644.                application;
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.                               Expires June 22, 1993            [Page 28]
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.           Draft           Protocol Operations for SNMPv2          Dec 92
  1657.  
  1658.  
  1659.           (2)  generates a Response-PDU with the same values in its
  1660.                request-id and variable-bindings fields as the received
  1661.                InformRequest-PDU, with the value of its error-status
  1662.                field is set to `noError' and the value of its error-
  1663.                index field is zero; and
  1664.  
  1665.           (3)  transmits the generated Response-PDU to the originator of
  1666.                the InformRequest-PDU.
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.                               Expires June 22, 1993            [Page 29]
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.           Draft           Protocol Operations for SNMPv2          Dec 92
  1716.  
  1717.  
  1718.           5.  Acknowledgements
  1719.  
  1720.           This document is based, in part, on RFC 1157.  The mechanism
  1721.           for bulk retrieval is influenced by many experiments,
  1722.           including RFC1187 and also Greg Satz's work on SNMP over TCP.
  1723.  
  1724.           Finally, the comments of the SNMP version 2 working group are
  1725.           gratefully acknowledged:
  1726.  
  1727.                Beth Adams, Network Management Forum
  1728.                Steve Alexander, INTERACTIVE Systems Corporation
  1729.                David Arneson, Cabletron Systems
  1730.                Toshiya Asaba,
  1731.                Fred Baker, ACC
  1732.                Jim Barnes, Xylogics, Inc.
  1733.                Brian Bataille
  1734.                Andy Bierman, SynOptics Communications, Inc.
  1735.                Uri Blumenthal, IBM Corporation
  1736.                Fred Bohle, Interlink
  1737.                Jack Brown
  1738.                Theodore Brunner, Bellcore
  1739.                Stephen F. Bush, GE Information Services
  1740.                Deirdre C. Kostik, Bellcore
  1741.                Jeff Case, University of Tennessee, Knoxville
  1742.                John Chang, IBM Corporation
  1743.                Szusin Chen, Sun Microsystems
  1744.                Robert Ching
  1745.                Chris Chiotasso, Ungermann-Bass
  1746.                Bobby A. Clay, NASA/Boeing
  1747.                John Cooke, Chipcom
  1748.                Tracy Cox, Bellcore
  1749.                Juan Cruz, Datability, Inc.
  1750.                David Cullerot, Cabletron Systems
  1751.                Cathy Cunningham, Microcom
  1752.                James R. (Chuck) Davin, Bellcore
  1753.                Michael Davis, Clearpoint
  1754.                Mike Davison, FiberCom
  1755.                Cynthia DellaTorre, MITRE
  1756.                Taso N. Devetzis, Bellcore
  1757.                Manual Diaz, DAVID Systems, Inc.
  1758.                Jon Dreyer, Sun Microsystems
  1759.                Susan E. Hicks, Martin Marietta Energy Systems
  1760.                David Engel, Optical Data Systems
  1761.                Mike Erlinger, Lexcel
  1762.                Roger Fajman, NIH
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.                               Expires June 22, 1993            [Page 30]
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.           Draft           Protocol Operations for SNMPv2          Dec 92
  1775.  
  1776.  
  1777.                Daniel Fauvarque, Sun Microsystems
  1778.                Karen Frisa, CMU
  1779.                Shari Galitzer, MITRE
  1780.                Shawn Gallagher, Digital Equipment Corporation
  1781.                Richard Graveman, Bellcore
  1782.                Maria Greene, Xyplex, Inc.
  1783.                Michel Guittet, Apple
  1784.                Robert Gutierrez, NASA
  1785.                Bill Hagerty, Cabletron Systems
  1786.                Gary W. Haney, Martin Marietta Energy Systems
  1787.                Patrick Hanil, Nokia Telecommunications
  1788.                Matt Hecht, SNMP Research, Inc.
  1789.                Edward A. Heiner, Jr., Synernetics Inc.
  1790.                Geral Holzhauer, Apple
  1791.                John Hopprich, DAVID Systems, Inc.
  1792.                Jeff Hughes, Hewlett-Packard
  1793.                Robin Iddon, Axon Networks, Inc.
  1794.                David Itusak
  1795.                Kevin M. Jackson, Concord Communications, Inc.
  1796.                Ole J. Jacobsen, Interop Company
  1797.                Ronald Jacoby, Silicon Graphics, Inc.
  1798.                Satish Joshi, SynOptics Communications, Inc.
  1799.                Frank Kastenholz, FTP Software
  1800.                Mark Kepke, Hewlett-Packard
  1801.                Ken Key, SNMP Research, Inc.
  1802.                Zbiginew Kielczewski, Eicon
  1803.                Jongyeoi Kim
  1804.                Andrew Knutsen, The Santa Cruz Operation
  1805.                Michael L Kornegay, VisiSoft
  1806.                Cheryl Krupczak, Georgia Tech
  1807.                Steven L. Waldbusser, Carnegie Mellon Universitty
  1808.                Mark S. Lewis, Telebit
  1809.                David Lin
  1810.                David Lindemulder, AT&T/NCR
  1811.                Ben Lisowski, Sprint
  1812.                David Liu, Bell-Northern Research
  1813.                John Lunny, The Wollongong Group
  1814.                Robert C. Lushbaugh Martin, Marietta Energy Systems
  1815.                Michael Luufer, BBN
  1816.                Carl Madison, Star-Tek, Inc.
  1817.                Keith McCloghrie, Hughes LAN Systems
  1818.                Evan McGinnis, 3Com Corporation
  1819.                Bill McKenzie, IBM Corporation
  1820.                Donna McMaster, SynOptics Communications, Inc.
  1821.                John Medicke, IBM Corporation
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.                               Expires June 22, 1993            [Page 31]
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.           Draft           Protocol Operations for SNMPv2          Dec 92
  1834.  
  1835.  
  1836.                Doug Miller, Telebit
  1837.                Dave Minnich, FiberCom
  1838.                Mohammad Mirhakkak, MITRE
  1839.                Rohit Mital, Protools
  1840.                George Mouradian, AT&T Bell Labs
  1841.                Patrick Mullaney, Cabletron Systems
  1842.                Dan Myers, 3Com Corporation
  1843.                Rina Nathaniel, Rad Network Devices Ltd.
  1844.                Hien V. Nguyen, Sprint
  1845.                Mo Nikain
  1846.                Tom Nisbet
  1847.                William B. Norton, MERIT
  1848.                Steve Onishi, Wellfleet Communications, Inc.
  1849.                David T. Perkins, SynOptics Communications, Inc.
  1850.                Carl Powell, BBN
  1851.                Ilan Raab, SynOptics Communications, Inc.
  1852.                RIchard Ramons, AT&T
  1853.                Venkat D. Rangan, Metric Network Systems, Inc.
  1854.                Louise Reingold, Sprint
  1855.                Sam Roberts, Farallon Computing, Inc.
  1856.                Kary Robertson, Concord Communications, Inc.
  1857.                Dan Romascanu, Lannet Data Communications Ltd.
  1858.                Marshall T. Rose, Dover Beach Consulting, Inc.
  1859.                Shawn A. Routhier, Epilogue Technology Corporation
  1860.                Chris Rozman
  1861.                Asaf Rubissa, Fibronics
  1862.                Jon Saperia, Digital Equipment Corporation
  1863.                Michael Sapich
  1864.                Mike Scanlon, Interlan
  1865.                Sam Schaen, MITRE
  1866.                John Seligson, Ultra Network Technologies
  1867.                Paul A. Serice, Corporation for Open Systems
  1868.                Chris Shaw, Banyan Systems
  1869.                Timon Sloane
  1870.                Robert Snyder, Cisco Systems
  1871.                Joo Young Song
  1872.                Roy Spitier, Sprint
  1873.                Einar Stefferud, Network Management Associates
  1874.                John Stephens, Cayman Systems, Inc.
  1875.                Bob Stewart, Xyplex, Inc. (chair)
  1876.                Kaj Tesink, Bellcore
  1877.                Dean Throop, Data General
  1878.                Ahmet Tuncay, France Telecom-CNET
  1879.                Maurice Turcotte, Racal Datacom
  1880.                Warren Vik, INTERACTIVE Systems Corporation
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.                               Expires June 22, 1993            [Page 32]
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.           Draft           Protocol Operations for SNMPv2          Dec 92
  1893.  
  1894.  
  1895.                Yannis Viniotis
  1896.                Steve Waldbusser, CMU
  1897.                Timothy M. Walden, ACC
  1898.                Alice Wang, Sun Microsystems
  1899.                James Watt, Newbridge
  1900.                Luanne Waul, Timeplex
  1901.                Donald E. Westlake III, Digital Equipment Corporation
  1902.                Gerry White
  1903.                Bert Wijnen, IBM Corporation
  1904.                Peter Wilson, 3Com Corporation
  1905.                Steven Wong, Digital Equipment Corporation
  1906.                Randy Worzella, IBM Corporation
  1907.                Daniel Woycke, MITRE
  1908.                Honda Wu
  1909.                Jeff Yarnell, Protools
  1910.                Chris Young, Cabletron
  1911.                Kiho Yum, 3Com Corporation
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.                               Expires June 22, 1993            [Page 33]
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.           Draft           Protocol Operations for SNMPv2          Dec 92
  1952.  
  1953.  
  1954.           6.  References
  1955.  
  1956.           [1]  Information processing systems - Open Systems
  1957.                Interconnection - Specification of Abstract Syntax
  1958.                Notation One (ASN.1), International Organization for
  1959.                Standardization.  International Standard 8824, (December,
  1960.                1987).
  1961.  
  1962.           [2]  J.D. Case, K. McCloghrie, M.T. Rose, S.L. Waldbusser,
  1963.                Structure of Management Information for version 2 of the
  1964.                Simple Network Management Protocol (SNMPv2).  Internet-
  1965.                Draft, (December 22, 1992).                                |
  1966.  
  1967.           [3]  J.R. Davin, J.M. Galvin, K. McCloghrie, Administrative
  1968.                Model for version 2 of the Simple Network Management
  1969.                Protocol (SNMPv2).  Internet-Draft, (December 22, 1992).   |
  1970.  
  1971.           [4]  J.D. Case, K. McCloghrie, M.T. Rose, S.L. Waldbusser,
  1972.                Textual Conventions for version 2 of the the Simple
  1973.                Network Management Protocol (SNMPv2).  Internet-Draft,     |
  1974.                (December 22, 1992).                                       |
  1975.  
  1976.           [5]  K. McCloghrie, J.R. Davin, J.M. Galvin, Party MIB for
  1977.                version 2 of the Simple Network Management Protocol
  1978.                (SNMPv2).  Internet-Draft, (December 22, 1992).            |
  1979.  
  1980.           [6]  C. Kent, J. Mogul, Fragmentation Considered Harmful,
  1981.                Proceedings, ACM SIGCOMM '87, Stowe, VT, (August 1987).
  1982.  
  1983.           [7]  J.D. Case, K. McCloghrie, M.T. Rose, S.L. Waldbusser,
  1984.                Transport Mappings for version 2 of the Simple Network
  1985.                Management Protocol (SNMPv2).  Internet-Draft, (December   |
  1986.                22, 1992).                                                 |
  1987.  
  1988.           [8]  J. Postel, User Datagram Protocol.  Request for Comments
  1989.                768, (December 4).
  1990.  
  1991.           [9]  K. McCloghrie and M.T. Rose, Management Information Base
  1992.                for Network Management of TCP/IP-based internets:  MIB-
  1993.                II.  Request for Comments 1213, (March, 1991).
  1994.  
  1995.           [10] J.D. Case, K. McCloghrie, M.T. Rose, S.L. Waldbusser,
  1996.                Coexistence between version 1 and version 2 of the
  1997.                Internet-standard Network Management Framework.
  1998.                Internet-Draft, (December 22, 1992).                       |
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.                               Expires June 22, 1993            [Page 34]
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.           Draft           Protocol Operations for SNMPv2          Dec 92
  2011.  
  2012.  
  2013.           [11] J.D. Case, K. McCloghrie, M.T. Rose, S.L. Waldbusser,
  2014.                Management Information Base for version 2 of the Simple
  2015.                Network Management Protocol (SNMPv2).  Internet-Draft,     |
  2016.                (December 22, 1992).                                       |
  2017.  
  2018.           [12] J.D. Case, K. McCloghrie, M.T. Rose, S.L. Waldbusser,
  2019.                Manager to Manager Management Information Base.
  2020.                Internet-Draft, (December 22, 1992).                       |
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.                               Expires June 22, 1993            [Page 35]
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.           Draft           Protocol Operations for SNMPv2          Dec 92
  2070.  
  2071.  
  2072.           Table of Contents
  2073.  
  2074.  
  2075.           1 Introduction ..........................................    2
  2076.           1.1 A Note on Terminology ...............................    2
  2077.           2 Overview ..............................................    3
  2078.           2.1 Roles of Protocol Entities ..........................    3
  2079.           2.2 Management Information ..............................    3
  2080.           2.3 Access to Management Information ....................    4
  2081.           2.4 Retransmission of Requests ..........................    4
  2082.           2.5 Message Sizes .......................................    5
  2083.           2.6 Transport Mappings ..................................    6
  2084.           3 Definitions ...........................................    7
  2085.           4 Protocol Specification ................................   12
  2086.           4.1 Common Constructs ...................................   12
  2087.           4.2 PDU Processing ......................................   12
  2088.           4.2.1 The GetRequest-PDU ................................   14
  2089.           4.2.2 The GetNextRequest-PDU ............................   15
  2090.           4.2.2.1 Example of Table Traversal ......................   16
  2091.           4.2.3 The GetBulkRequest-PDU ............................   18
  2092.           4.2.3.1 Another Example of Table Traversal ..............   21
  2093.           4.2.4 The Response-PDU ..................................   22
  2094.           4.2.5 The SetRequest-PDU ................................   23
  2095.           4.2.6 The SNMPv2-Trap-PDU ...............................   26
  2096.           4.2.7 The InformRequest-PDU .............................   28
  2097.           5 Acknowledgements ......................................   30
  2098.           6 References ............................................   34
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.                               Expires June 22, 1993            [Page 36]
  2123.  
  2124.